import hashlib
import base64
import datetime
import json


def generate_license(key, expiration_date):
    data = {
        'key': key,
        'expiration_date': expiration_date.isoformat(),
    }

    # 将数据转换为JSON并进行编码
    json_data = json.dumps(data).encode('utf-8')
    print(f"JSON数据: {json_data}")
    # 对JSON数据进行哈希处理
    hashed_data = hashlib.sha256(json_data).digest()
    print(f"哈希数据: {hashed_data}")
    # 使用base64对哈希数据进行编码
    encoded_data = base64.b64encode(hashed_data).decode('utf-8')
    print(f"编码数据: {encoded_data}")
    return encoded_data


# 示例用法
license_key = "235681"
expiration_date = datetime.date(2024, 12, 31)

license = generate_license(license_key, expiration_date)
print(f"生成的许可证: {license}")
